/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */


//  树的遍历方式总体分为两类：深度优先搜索（DFS）、广度优先搜索（BFS）；

//  常见的 DFS ： 先序遍历、中序遍历、后序遍历；
//  常见的 BFS ： 层序遍历（即按层遍历）。

/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function (root) {
  let n = 0
  if (!root) return 0
  let deep = (node) => {
    if (node === null) { return 0 }
    console.log(node)
    // deep(node.left)
    // deep(node.right)
    return 1 + Math.max(deep(node.left), deep(node.right))
  }

  return deep(root)
};